/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.pi.controle;

import br.com.pi.dao.ProdutoDAOImp;
import br.com.pi.dao.ProdutoDao;
import br.com.pi.pojo.Produto;
import java.io.Serializable;
import java.sql.SQLIntegrityConstraintViolationException;
import java.util.ArrayList;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import javax.faces.model.SelectItem;

/**
 *
 * @author Thiago
 */
@ManagedBean
@SessionScoped
public class ProdutoControle implements Serializable {

    ProdutoDao produtoDAO;
    Produto produto;
    private DataModel model;
    private boolean pesquisa;

    public String salvaOuEdita() {
        FacesContext context = FacesContext.getCurrentInstance();
        produtoDAO = new ProdutoDAOImp();
//        endereco.setCep(cep);
        try {
            produtoDAO.salvar(produto);
            context.addMessage(null,
                    new FacesMessage(FacesMessage.SEVERITY_INFO, "Produto salvo com Sucesso!", ""));
        } catch (SQLIntegrityConstraintViolationException ex) {
            System.out.println("Erro no controle para salvar ou alterar produto");
        } catch (Exception ex) {
            System.out.println("Erro no controle para salvar ou alterar produto");
        }
        return "";
    }

    public String excluirProduto() {
        produtoDAO = new ProdutoDAOImp();
        FacesContext context = FacesContext.getCurrentInstance();
        try {
            produtoDAO.remove(produto);
            context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "excluido com sucesso", ""));
        } catch (Exception e) {

            System.out.println("erro ao excluido");
        }


        return "pesqProd";
    }

    public String pesquisaNome() {
        produtoDAO = new ProdutoDAOImp();
        try {
            //converter para lista do faces
            model = new ListDataModel(produtoDAO.pesquisaNome(produto.getNome()));
        } catch (Exception ex) {
            System.out.println("errro ao pesuisar" + ex.getMessage());
        }
        // para limpar campos
        produto = null;
        return "";
    }

    public List<SelectItem> getTodosEstados() {
        produtoDAO = new ProdutoDAOImp();
        List<SelectItem> ListaCombo = new ArrayList();
        try {
            List<Produto> produtos = produtoDAO.getTodos();


        } catch (Exception e) {
            System.out.println("erro ao carregar combo");
        }

        return ListaCombo;
    }
}